﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Microsoft.Win32;

namespace EasyTrader.Form
{
    public partial class HogaSummitSysSetFrm : System.Windows.Forms.Form
    {
        public HogaSummitSysSetFrm()
        {
            InitializeComponent();
            InitControl();
        }

        private void InitControl()
        {
            comboFirstSig.SelectedIndex = HogaSummitSysVar.FirstSignalType;

            int selectedIndex = comboLossStopAll.FindString(HogaSummitSysVar.PerLossLiquidValue.ToString());
            comboLossStopAll.SelectedIndex = selectedIndex;

            selectedIndex = comboLossMargin.FindString(JisuWaveHogaSummitSysVar.LossMargin.ToString());
            comboLossMargin.SelectedIndex = selectedIndex;

            selectedIndex = comboProfitStopAll.FindString(HogaSummitSysVar.PerProfitLiquidValue.ToString());
            comboProfitStopAll.SelectedIndex = selectedIndex;

            selectedIndex = comboMinDayAmp.FindString(HogaSummitSysVar.MinDayAmp.ToString());
            comboMinDayAmp.SelectedIndex = selectedIndex;

            tbMinTurnHogaDelta.Text = HogaSummitSysVar.MinTurnHogaDelta.ToString();

            comboSysStartHour.SelectedIndex = HogaSummitSysVar.SysStartHour;
            comboSysStartMin.SelectedIndex = HogaSummitSysVar.SysStartMin;
            comboSysEndHour.SelectedIndex = HogaSummitSysVar.SysEndHour;
            comboSysEndMin.SelectedIndex = HogaSummitSysVar.SysEndMin;
            comboOrderStartHour.SelectedIndex = HogaSummitSysVar.OrderStartHour;
            comboOrderStartMin.SelectedIndex = HogaSummitSysVar.OrderStartMin;
            comboOrderEndHour.SelectedIndex = HogaSummitSysVar.OrderEndHour;
            comboOrderEndMin.SelectedIndex = HogaSummitSysVar.OrderEndMin;
            comboOrderStartSignal.SelectedIndex = HogaSummitSysVar.SysStartState;
            comboOrderEndSignal.SelectedIndex = HogaSummitSysVar.SysEndState;

            tbPerOrderAmount.Text = HogaSummitSysVar.PerOrderAmount.ToString();
            tbMinTurnHogaMaxMinDelta.Text = HogaSummitSysVar.MinTurnHogaMaxMinDelta.ToString();
            tbOneWayMinHoga.Text = HogaSummitSysVar.OneWayMinHoga.ToString();


            if (HogaSummitSysVar.EnablePerLossLiquid == true)
            {
                cbPerLossLiquidApply.Checked = true;
            }
            else
            {
                cbPerLossLiquidApply.Checked = false;
            }

            if (HogaSummitSysVar.EnablePerProfitLiquid == true)
            {
                cbPerProfitLiquidApply.Checked = true;
            }
            else
            {
                cbPerProfitLiquidApply.Checked = false;
            }

            if (HogaSummitSysVar.EnterByClose == true)
            {
                cbEnterByClose.Checked = true;
            }
            else
            {
                cbEnterByClose.Checked = false;
            }

            if (HogaSummitSysVar.LiquidByClose == true)
            {
                cbLiquidByClose.Checked = true;
            }
            else
            {
                cbLiquidByClose.Checked = false;
            }
        }

        private void comboFirstSig_SelectedIndexChanged(object sender, EventArgs e)
        {
            int selectedIndex = comboFirstSig.SelectedIndex;
            if (selectedIndex == -1)
                return;
            HogaSummitSysVar.FirstSignalType = Convert.ToInt32(selectedIndex);

            string regSubkey = "Software\\EasyTrader\\HogaSummitSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("FirstSignalType", HogaSummitSysVar.FirstSignalType.ToString());
        }

        private void tbMinTurnHogaDelta_TextChanged(object sender, EventArgs e)
        {
            string selText = tbMinTurnHogaDelta.Text;
            if (selText == "")
                return;
            HogaSummitSysVar.MinTurnHogaDelta = Convert.ToInt32(selText);

            string regSubkey = "Software\\EasyTrader\\HogaSummitSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("MinTurnHogaDelta", HogaSummitSysVar.MinTurnHogaDelta.ToString());
        }

        private void comboSysStartHour_SelectedIndexChanged(object sender, EventArgs e)
        {
            int selectedIndex = comboSysStartHour.SelectedIndex;

            HogaSummitSysVar.SysStartHour = selectedIndex;

            string regSubkey = "Software\\EasyTrader\\HogaSummitSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("SysStartHour", HogaSummitSysVar.SysStartHour.ToString());
        }

        private void comboSysStartMin_SelectedIndexChanged(object sender, EventArgs e)
        {
            int selectedIndex = comboSysStartMin.SelectedIndex;

            HogaSummitSysVar.SysStartMin = selectedIndex;

            string regSubkey = "Software\\EasyTrader\\HogaSummitSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("SysStartMin", HogaSummitSysVar.SysStartMin.ToString());
        }

        private void comboSysEndHour_SelectedIndexChanged(object sender, EventArgs e)
        {
            int selectedIndex = comboSysEndHour.SelectedIndex;

            HogaSummitSysVar.SysEndHour = selectedIndex;

            string regSubkey = "Software\\EasyTrader\\HogaSummitSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("SysEndHour", HogaSummitSysVar.SysEndHour.ToString());
        }

        private void comboSysEndMin_SelectedIndexChanged(object sender, EventArgs e)
        {
            int selectedIndex = comboSysEndMin.SelectedIndex;

            HogaSummitSysVar.SysEndMin = selectedIndex;

            string regSubkey = "Software\\EasyTrader\\HogaSummitSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("SysEndMin", HogaSummitSysVar.SysEndMin.ToString());
        }

        private void comboOrderStartHour_SelectedIndexChanged(object sender, EventArgs e)
        {
            int selectedIndex = comboOrderStartHour.SelectedIndex;

            HogaSummitSysVar.OrderStartHour = selectedIndex;

            string regSubkey = "Software\\EasyTrader\\HogaSummitSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("OrderStartHour", HogaSummitSysVar.OrderStartHour.ToString());
        }

        private void comboOrderStartMin_SelectedIndexChanged(object sender, EventArgs e)
        {
            int selectedIndex = comboOrderStartMin.SelectedIndex;

            HogaSummitSysVar.OrderStartMin = selectedIndex;

            string regSubkey = "Software\\EasyTrader\\HogaSummitSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("OrderStartMin", HogaSummitSysVar.OrderStartMin.ToString());
        }

        private void comboOrderEndHour_SelectedIndexChanged(object sender, EventArgs e)
        {
            int selectedIndex = comboOrderEndHour.SelectedIndex;

            HogaSummitSysVar.OrderEndHour = selectedIndex;

            string regSubkey = "Software\\EasyTrader\\HogaSummitSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("OrderEndHour", HogaSummitSysVar.OrderEndHour.ToString());
        }

        private void comboOrderEndMin_SelectedIndexChanged(object sender, EventArgs e)
        {
            int selectedIndex = comboOrderEndMin.SelectedIndex;

            HogaSummitSysVar.OrderEndMin = selectedIndex;

            string regSubkey = "Software\\EasyTrader\\HogaSummitSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("OrderEndMin", HogaSummitSysVar.OrderEndMin.ToString());
        }

        private void comboOrderStartSignal_SelectedIndexChanged(object sender, EventArgs e)
        {
            int selectedIndex = comboOrderStartSignal.SelectedIndex;

            HogaSummitSysVar.SysStartState = selectedIndex;

            string regSubkey = "Software\\EasyTrader\\HogaSummitSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("OrderStartSignal", HogaSummitSysVar.SysStartState.ToString());
        }

        private void comboOrderEndSignal_SelectedIndexChanged(object sender, EventArgs e)
        {
            int selectedIndex = comboOrderEndSignal.SelectedIndex;

            HogaSummitSysVar.SysEndState = selectedIndex;

            string regSubkey = "Software\\EasyTrader\\HogaSummitSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("OrderEndSignal", HogaSummitSysVar.SysEndState.ToString());
        }

        private void cbPerLossLiquidApply_CheckedChanged(object sender, EventArgs e)
        {
            string selText = "";
            if (cbPerLossLiquidApply.Checked == true)
            {
                selText = "True";
                HogaSummitSysVar.EnablePerLossLiquid = true;
            }
            else
            {
                selText = "False";
                HogaSummitSysVar.EnablePerLossLiquid = false;
            }


            string regSubkey = "Software\\EasyTrader\\HogaSummitSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("EnableLossLiquid", selText);
        }

        private void cbPerProfitLiquidApply_CheckedChanged(object sender, EventArgs e)
        {
            string selText = "";
            if (cbPerProfitLiquidApply.Checked == true)
            {
                selText = "True";
                HogaSummitSysVar.EnablePerProfitLiquid = true;
            }
            else
            {
                selText = "False";
                HogaSummitSysVar.EnablePerProfitLiquid = false;
            }


            string regSubkey = "Software\\EasyTrader\\HogaSummitSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("EnableProfitLiquid", selText);
        }

        private void comboLossStopAll_SelectedIndexChanged(object sender, EventArgs e)
        {
            string selText = comboLossStopAll.SelectedItem.ToString();
            if (selText == "")
                return;
            HogaSummitSysVar.PerLossLiquidValue = Convert.ToDouble(selText);

            string regSubkey = "Software\\EasyTrader\\HogaSummitSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("LossLiquidValue", HogaSummitSysVar.PerLossLiquidValue.ToString());
        }

        private void comboProfitStopAll_SelectedIndexChanged(object sender, EventArgs e)
        {
            string selText = comboProfitStopAll.SelectedItem.ToString();
            if (selText == "")
                return;
            HogaSummitSysVar.PerProfitLiquidValue = Convert.ToDouble(selText);

            string regSubkey = "Software\\EasyTrader\\HogaSummitSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("ProfitLiquidValue", HogaSummitSysVar.PerProfitLiquidValue.ToString());
        }

        private void btnSetFirstSignal_Click(object sender, EventArgs e)
        {
            System.Windows.Forms.Form frmchild = new EasyTrader.Form.FirstSigSetFrm();
            frmchild.Show();
        }

        private void tbPerOrderAmount_TextChanged(object sender, EventArgs e)
        {
            string selText = tbPerOrderAmount.Text;
            if (selText == "")
                return;
            HogaSummitSysVar.PerOrderAmount = Convert.ToInt32(selText);

            string regSubkey = "Software\\EasyTrader\\HogaSummitSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("PerOrderAmount", HogaSummitSysVar.PerOrderAmount.ToString());
        }

        private void tbMinTurnHogaMaxMinDelta_TextChanged(object sender, EventArgs e)
        {
            string selText = tbMinTurnHogaMaxMinDelta.Text;
            if (selText == "")
                return;
            HogaSummitSysVar.MinTurnHogaMaxMinDelta = Convert.ToInt32(selText);

            string regSubkey = "Software\\EasyTrader\\HogaSummitSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("MinTurnHogaMaxMinDelta", HogaSummitSysVar.MinTurnHogaMaxMinDelta.ToString());
        }

        private void comboLossMargin_SelectedIndexChanged(object sender, EventArgs e)
        {
            string selText = comboLossMargin.SelectedItem.ToString();
            if (selText == "")
                return;
            HogaSummitSysVar.LossMargin = Convert.ToDouble(selText);

            string regSubkey = "Software\\EasyTrader\\HogaSummitSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("LossMargin", HogaSummitSysVar.LossMargin.ToString());
        }

        private void cbEnterByClose_CheckedChanged(object sender, EventArgs e)
        {
            string selText = "";
            if (cbEnterByClose.Checked == true)
            {
                selText = "True";
                HogaSummitSysVar.EnterByClose = true;
            }
            else
            {
                selText = "False";
                HogaSummitSysVar.EnterByClose = false;
            }


            string regSubkey = "Software\\EasyTrader\\HogaSummitSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("EnterByClose", selText);
        }

        private void cbLiquidByClose_CheckedChanged(object sender, EventArgs e)
        {
            string selText = "";
            if (cbLiquidByClose.Checked == true)
            {
                selText = "True";
                HogaSummitSysVar.LiquidByClose = true;
            }
            else
            {
                selText = "False";
                HogaSummitSysVar.LiquidByClose = false;
            }


            string regSubkey = "Software\\EasyTrader\\HogaSummitSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("LiquidByClose", selText);
        }

        private void tbOneWayMinHoga_TextChanged(object sender, EventArgs e)
        {
            string selText = tbOneWayMinHoga.Text;
            if (selText == "")
                return;
            HogaSummitSysVar.OneWayMinHoga = Convert.ToInt32(selText);

            string regSubkey = "Software\\EasyTrader\\HogaSummitSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("OneWayMinHoga", HogaSummitSysVar.OneWayMinHoga.ToString());
        }

        private void comboMinDayAmp_SelectedIndexChanged(object sender, EventArgs e)
        {
            string selText = comboMinDayAmp.SelectedItem.ToString();
            if (selText == "")
                return;
            HogaSummitSysVar.MinDayAmp = Convert.ToDouble(selText);

            string regSubkey = "Software\\EasyTrader\\HogaSummitSys";
            // 서브키를 얻어온다. 없으면 null
            RegistryKey rk = Registry.CurrentUser.OpenSubKey(regSubkey, true);
            // 없으면 서브키를 만든다.
            if (rk == null)
            {
                // 해당이름으로 서브키 생성
                rk = Registry.CurrentUser.CreateSubKey(regSubkey);
            }

            // 서브키 아래 값 쓰기
            rk.SetValue("MinDayAmp", HogaSummitSysVar.MinDayAmp.ToString());
        }
    }
}
